অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে Response Headers ম্যানিপুলেশন একটি গুরুত্বপূর্ণ কাজ, যা HTTP প্রতিক্রিয়া থেকে অতিরিক্ত তথ্য সংগ্রহ এবং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। Response headers সার্ভারের কাছ থেকে প্রাপ্ত তথ্য, যেমন কুকি, কন্টেন্ট টাইপ, কন্টেন্ট লেংথ, কেশিং পলিসি ইত্যাদি ধারণ করে। এই তথ্যগুলি ম্যানিপুলেট বা বিশ্লেষণ করা প্রায়শই বিভিন্ন ক্ষেত্রে দরকার হয়, যেমন নিরাপত্তা, ডেটা যাচাই বা কাস্টম হেডার প্রক্রিয়াকরণ।
Apache HTTP Client-এ HttpResponse
এর মাধ্যমে প্রতিক্রিয়ার হেডারগুলি অ্যাক্সেস করা এবং ম্যানিপুলেট করা যায়।
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.http.Header;
public class ApacheHttpClientResponseHeaders {
public static void main(String[] args) {
// HttpClient তৈরি করুন
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
// GET অনুরোধের URL দিন
HttpGet httpGet = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");
// অনুরোধ পাঠিয়ে প্রতিক্রিয়া সংগ্রহ করুন
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
// প্রতিক্রিয়া থেকে স্ট্যাটাস কোড পান
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Status Code: " + statusCode);
// প্রতিক্রিয়া হেডারগুলি পেতে
Header[] headers = response.getAllHeaders();
// সব হেডার প্রিন্ট করা
System.out.println("Response Headers:");
for (Header header : headers) {
System.out.println(header.getName() + ": " + header.getValue());
}
// একটি নির্দিষ্ট হেডার পড়া
String contentType = response.getFirstHeader("Content-Type").getValue();
System.out.println("Content-Type Header: " + contentType);
// HttpEntity থেকে ডেটা পড়ুন
HttpEntity entity = response.getEntity();
if (entity != null) {
// কনটেন্ট স্ট্রিং আকারে পড়ুন
String responseBody = EntityUtils.toString(entity);
System.out.println("Response Content: " + responseBody);
}
} finally {
// প্রতিক্রিয়া বন্ধ করুন
response.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// HttpClient বন্ধ করুন
httpClient.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
HttpClient তৈরি করা
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpClients.createDefault()
ব্যবহার করে একটি HTTP ক্লায়েন্ট তৈরি করা হয়েছে।HTTP GET অনুরোধ তৈরি করা
HttpGet httpGet = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");
HttpGet
অবজেক্ট দিয়ে GET অনুরোধ তৈরি করা হয়েছে, যেটি একটি URL (https://jsonplaceholder.typicode.com/posts/1
) এ পাঠানো হয়েছে।Response Headers সংগ্রহ
Header[] headers = response.getAllHeaders();
getAllHeaders()
ব্যবহার করে সমস্ত হেডার সংগ্রহ করা হয়েছে। এই মেথড হেডারগুলির একটি অ্যারে ফেরত দেয়।Response Headers প্রিন্ট করা
for (Header header : headers) {
System.out.println(header.getName() + ": " + header.getValue());
}
নির্দিষ্ট হেডার পড়া
String contentType = response.getFirstHeader("Content-Type").getValue();
getFirstHeader("Content-Type")
ব্যবহার করে Content-Type
হেডারের মান পড়া হয়েছে।EntityUtils.toString(entity)
ব্যবহার করে প্রাপ্ত প্রতিক্রিয়া বডি (যেমন JSON ডেটা) পড়া হয়েছে।no-cache
, max-age
ইত্যাদি)।HttpResponse
এর মাধ্যমে Response Headers অ্যাক্সেস এবং ম্যানিপুলেট করা একটি গুরুত্বপূর্ণ দিক, বিশেষ করে যখন সার্ভারের প্রাপ্ত তথ্য (যেমন কুকি, কন্টেন্ট টাইপ, কেশিং, ইত্যাদি) প্রক্রিয়াজাত বা যাচাই করার প্রয়োজন হয়। HttpClient
এ getAllHeaders()
এবং getFirstHeader()
ব্যবহার করে হেডারগুলি পাওয়া এবং বিশ্লেষণ করা সহজ এবং কার্যকরী পদ্ধতি।
common.read_more